package com.hzw.saas.service.old.storage.model;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hzw.saas.api.storage.enums.FileIntegrityEnum;
import com.hzw.saas.api.storage.enums.ResourceStatusEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 资源表
 * </p>
 *
 * @author zzl
 * @since 2020-12-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_resource_file")
public class ResourceFile implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(type = IdType.INPUT)
    private String fileId;

    /**
     * 文件所在目录ID，根目录ID为0
     */
    private String folderId;

    /**
     * 文件完整名称，含后缀
     */
    private String name;

    /**
     * 文件后缀
     */
    private String suffix;

    /**
     * 文件长度，单位：byte
     */
    private Long length;

    /**
     * 文件摘要，MD5
     */
    private String digest;

    /**
     * 文件完整性
     *
     * @see FileIntegrityEnum
     */
    private Integer integrity;

    /**
     * 文件状态
     *
     * @see ResourceStatusEnum
     */
    private Integer status;

    /**
     * 存储虚拟目录
     */
    private String catalog;

    /**
     * 存储类型
     */
    private String serviceType;

    /**
     * 存储名称
     */
    private String serviceProvider;

    /**
     * 资源路径
     */
    private String url;

    /**
     * 资源存储Key
     */
    private String resourceKey;

    /**
     * 创建者ID
     */
    private String creatorId;

    /**
     * 所有者ID（用户或共享空间）
     */
    private String ownerId;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 更新时间
     */
    private Date updateDate;

    /**
     * 文件分片信息,JSON数组转Base64
     *
     * @see LocChunkBO
     */
    private String chunkInfo;


}
